/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lhs;

import java.text.DecimalFormat;
import java.util.ArrayList;

/**
 *Hesin klassim umboðar eitt skip ið skal skrásettast í skipanini.
 * @author Degon
 */
public class Ship {
    
    private String name; //navni hjá skipinum
    private int length; //hvussu langt skipi er
    private double depth; //hvussu djúbt skipi stingur
    private int grt; // Gross Register Tonnage
    private int lengthOfStay; // hvussu leingi teir landa í tímum
    private ArrayList<Service> services; //ein listi av tænastum
    
    /**
     * Constructarin fyri klassan "Ship". 
     * Hann klárgerð/initialiserar feltini hjá klassanum.
     * 
     * @param name String parametur ið ásettur virði hjá feltinum "name".
     * @param length int parametur ið ásettur virði hjá feltinum "length"
     * @param depth double parametur ið ásettur virði hjá feltinum "depth"
     */
    public Ship(String name, int length, double depth, int grt, int lengthOfStay)
    {
        this.name = name;
        this.length = length;
        this.depth = depth;
        this.grt = grt;
        this.lengthOfStay = lengthOfStay;
        services = new ArrayList<Service>();
    }
    
    /**
     * Hendan metodan far fatur á navninum hjá klassanum "Ship".
     * @return returnerar eitt string virði
     */
    public String getName()
    {
        return name;
    }
    
    /**
     * Ein accessor ið tekur sær av at returnera longdina av shipinum.
     * @return Eitt int virði av klassanum Ship.
     */
    public int getLength()
    {
        return length;
    }
    
    /**
     * Ein accessor ið returnerar eitt virði av typuni double hjá klassanum "Ship".
     * @return 
     */
    public double getDepth()
    {
        return depth;
    }
    
    public int getGRT()
    {
        return grt;
    }
    
    public int getLengthOfStay()
    {
        return lengthOfStay;
    }
    
    /*
     * Roknar total kostnaðin hjá skipinum í teir tímarnir tað liggur við havnina. 
     * Vit dividera tímatalið við 24 fyri at finna BRT gjaldið per tíma.
     * So fylgja við frymlinum: Grundgjald 1.000 kr. + 100 kr. pr. m pr. tíma + 10 kr. pr BRT um samdøgrið
     */
        public double totalCost()
    {
        double temp = (double)lengthOfStay/24;
        double unformattedNumber = (double)1000+100*length*lengthOfStay+(10*grt*temp);
        double formattedNumber = Double.parseDouble(new DecimalFormat("#.##").format(unformattedNumber));
        return formattedNumber;

    }
    
    @Override
    public String toString()
    {
        return name;
    }
}
